import ApiClient from '@/api/apiClient';

import type { RequestBody } from 'alova';

/**
 * BizAlarmRuleInfo对象，报警规则详情表
 */
export interface BizAlarmRuleInfo {
  /**
   * 告警规则名称
   */
  alarmRuleName?: string;
  /**
   * 创建人
   */
  createBy?: string;
  /**
   * 创建人id
   */
  createId?: number;
  /**
   * 创建时间
   */
  createTime?: string;
  /**
   * 主键
   */
  id?: number;
  /**
   * 是否逻辑删除，0否,其他是
   */
  isDelete?: number;
  /**
   * 告警级别0:普通 1:严重 2紧急
   */
  level?: number;
  /**
   * 告警规则描述
   */
  remark?: string;
  /**
   * rule_configure规则表主键id
   */
  ruleId?: number;
  /**
   * 租户编码
   */
  tenantCode?: string;
  /**
   * 告警类型 1:设备告警
   */
  type?: number;
  /**
   * 修改人
   */
  updateBy?: string;
  /**
   * 修改人id
   */
  updateId?: number;
  /**
   * 更新时间
   */
  updateTime?: string;
  /**
   * 乐观锁版本号
   */
  version?: number;
  [property: string]: any;
}

/** 告警规则列表 */
export const rulesWarningListApi = (data: RequestBody) => {
  return ApiClient.Post<API.ListType<BizAlarmRuleInfo>>('/manager/alarm/ruleInfo/page', data, {
    meta: { auth: true },
  });
};
/** 删除告警规则*/
export const rulesWarningDeleteApi = (data: Merge<RequestBody, { id: string }>) => {
  return ApiClient.Post(`/manager/alarm/ruleInfo/remove/${data.id}`, data, {
    meta: { auth: true },
  });
};

/** 保存更新告警规则*/
export const rulesWarningAddOrSaveApi = (data: RequestBody) => {
  return ApiClient.Post(`/manager/alarm/ruleInfo/saveOrUpdate`, data, {
    meta: { auth: true },
  });
};

/** 获取告警规则详情 */
export const rulesWarningDetailApi = (data: { id: number }) => {
  return ApiClient.Get<BizAlarmRuleInfo>(`/manager/alarm/ruleInfo/get/${data.id}`, {
    meta: { auth: true },
  });
};
